General
Filename(s) sub-NDARZK745JGG_task-symbolSearch_run-1_eeg.set
MNE object type RawEEGLAB
Measurement date Unknown
Participant sub-NDARZK745JGG
Experimenter Unknown
Acquisition
Duration 00:02:59 (HH:MM:SS)
Sampling frequency 500.00 Hz
Time points 89,101
Channels
EEG
EOG
Head & sensor digitization 131 points
Filters
Highpass 0.00 Hz
Lowpass 250.00 Hz
PSD
General
Filename(s) sub-NDARZK745JGG_task-symbolSearch_run-1_eeg.set
MNE object type RawEEGLAB
Measurement date Unknown
Participant sub-NDARZK745JGG
Experimenter Unknown
Acquisition
Duration 00:02:59 (HH:MM:SS)
Sampling frequency 500.00 Hz
Time points 89,101
Channels
EEG
EOG
Head & sensor digitization 131 points
Filters
Highpass 1.00 Hz
Lowpass 100.00 Hz
PSD
General
MNE object type Epochs
Measurement date Unknown
Participant sub-NDARZK745JGG
Experimenter Unknown
Acquisition
Total number of events 4
Events counts rest: 4
Time range 0.000 – 0.500 s
Baseline off
Sampling frequency 500.00 Hz
Time points 251
Metadata No metadata set
Channels
EEG
Head & sensor digitization 131 points
Filters
Highpass 1.00 Hz
Lowpass 100.00 Hz
ERP image (EEG)
Drop log
PSD
PSD calculated from 4 epochs (2.0 s).
Autoreject cleaning
Autoreject was run to produce cleaner epochs before fitting ICA. 20 epochs were rejected because more than {'eeg': 8} channels were bad (cross-validated n_interpolate limit; excluding globally bad and non-data channels, shown in white). Note that none of the blue segments were actually interpolated before submitting the data to ICA. This is following the recommended approach for ICA described in the the Autoreject documentation.
Method picard
Fit parameters ortho=False
extended=True
max_iter=500
Fit 500 iterations on epochs (1004 samples)
ICA components 127
Available PCA components 128
Channel types eeg
ICA components marked for exclusion ICA000
ICA003
ICA006
ICA007
ICA010
ICA019
ICA027
ICA031
ICA041
ICA043
ICA045
ICA054
ICA055
ICA060
ICA068
ICA071
ICA077
ICA084
ICA086
ICA089
ICA092
ICA098
ICA099
ICA109
ICA115
ICA118
ICA121
ICA000
ICA003
ICA006
ICA007
ICA010
ICA019
ICA027
ICA031
ICA041
ICA043
ICA045
ICA054
ICA055
ICA060
ICA068
ICA071
ICA077
ICA084
ICA086
ICA089
ICA092
ICA098
ICA099
ICA109
ICA115
ICA118
ICA121
General
MNE object type Epochs
Measurement date Unknown
Participant sub-NDARZK745JGG
Experimenter Unknown
Acquisition
Total number of events 24
Events counts rest: 24
Time range 0.000 – 0.500 s
Baseline off
Sampling frequency 500.00 Hz
Time points 251
Metadata No metadata set
Channels
EEG
EOG
misc
Head & sensor digitization 131 points
Filters
Highpass 1.00 Hz
Lowpass 100.00 Hz
Projections Average EEG reference (off)
No epochs exceeded the rejection thresholds. Nothing was dropped.
PSD
PSD calculated from 24 epochs (12.0 s).
Method picard
Fit parameters ortho=False
extended=True
max_iter=500
Fit 500 iterations on epochs (1004 samples)
ICA components 127
Available PCA components 128
Channel types eeg
ICA components marked for exclusion ICA000
ICA003
ICA006
ICA007
ICA010
ICA019
ICA027
ICA031
ICA041
ICA043
ICA045
ICA054
ICA055
ICA060
ICA068
ICA071
ICA077
ICA084
ICA086
ICA089
ICA092
ICA098
ICA099
ICA109
ICA115
ICA118
ICA121
General
Filename(s) sub-NDARZK745JGG_task-symbolSearch_run-1_proc-eyelink_raw.fif
MNE object type Raw
Measurement date Unknown
Participant sub-NDARZK745JGG
Experimenter Unknown
Acquisition
Duration 00:02:09 (HH:MM:SS)
Sampling frequency 500.00 Hz
Time points 64,249
Channels
EEG
EOG
misc
Head & sensor digitization 131 points
Filters
Highpass 1.00 Hz
Lowpass 100.00 Hz
PSD
autoreject_local cleaning
Autoreject was run to produce cleaner epochs. 8 epochs were rejected because more than {'eeg': np.int64(16)} channels were bad (cross-validated n_interpolate limit; excluding globally bad and non-data channels, shown in white).
General
Filename(s) sub-NDARZK745JGG_task-symbolSearch_proc-ica_epo.fif
MNE object type EpochsFIF
Measurement date Unknown
Participant sub-NDARZK745JGG
Experimenter Unknown
Acquisition
Total number of events 16
Events counts rest: 16
Time range 0.000 – 0.500 s
Baseline off
Sampling frequency 500.00 Hz
Time points 251
Metadata No metadata set
Channels
EEG
EOG
misc
Head & sensor digitization 131 points
Filters
Highpass 1.00 Hz
Lowpass 100.00 Hz
Projections Average EEG reference (on)
ERP image (EEG)
Drop log
PSD
PSD calculated from 16 epochs (8.0 s).
  import mne

bids_root = "mergedDataset"
deriv_root = "mergedDataset/derivatives"
subjects_dir = None
#subjects = ["NDARAB678VYW","NDARDC504KWE","NDARDL033XRG","NDARTK720LER","NDARDZ794ZVP"] #"all" #["NDARAG429CGW"]
#subjects = ["NDARDZ794ZVP"] #"all" #["NDARAG429CGW"]
#subjects = ["NDARAB678VYW"] ##["NDARKM301DY0"] #"all"
#subjects = ["NDARAF535XK6"]
#subjects = ["NDARUC804LKP","NDARVD609JNZ","NDARGN483WFH","NDARFY623ZTE","NDARFN221WW5","NDARXR865BVX","NDARRK528GFZ","NDARKP823HEM","NDARYA857NDW","NDARUR298LVX","NDARWT403LP6","NDARDL033XRG","NDARYJ413BLN","NDARLP413TUX","NDARLM981MEN","NDARKG016KD1","NDARAG788YV9","NDARUA035YJN","NDARNP381RZ4","NDARZG044CJ5","NDARHT518WEM","NDARDX544FJ0","NDARKM199DXW","NDARWC905XUG","NDARYH501UH3","NDARRK146XCZ"]
subjects = ["NDARKT714TXR","NDARUC804LKP","NDARGN483WFH","NDARAL897CYV","NDARTA920XFC","NDARPW746FWF","NDARDL033XRG","NDARRK528GFZ","NDARBT436PMT","NDARZK745JGG"]

ch_types = ["eeg"]
interactive = False
sessions = []#"all"
task = "symbolSearch"
#task_et = "WISC_ProcSpeed"

task_is_rest = True
rest_epochs_duration = 5
rest_epochs_overlap = 0
runs = ["1"]
et_has_run = False
et_has_task = True

epochs_tmin = 0
#rest_epochs_duration = 10
#rest_epochs_overlap = 0
baseline = None
#baseline: tuple[float | None, float | None] | None = (-0.2, 0)

#raw_resample_sfreq: float | None = 250

eeg_reference = "average"

ica_l_freq = 1 # ?

# determined by icalabel
l_freq: float | None = 1
h_freq: float | None = 100
ica_h_freq: float | None = 100

# data was recorded in the US
notch_freq = 60

on_error = "continue"


######### Remove these when doing Unfold analysis! ############

# positive / negative feedback
#conditions = ["HAPPY", "SAD"]
##conditions = ["Fixation L"]
##
##epochs_tmin: float = -0.5
##epochs_tmax: float = 2.6 # since feedback is so infrequent, long epochs are okay
##
##baseline: tuple[float | None, float | None] | None = (-0.2, 0)
###############################################################



spatial_filter = "ica"
# ica_n_components = 96 ?
ica_algorithm = "picard-extended_infomax"
#ica_use_ecg_detection: bool = True
#ica_use_eog_detection: bool = True
ica_use_icalabel = True
#ica_reject: dict[str, float] | Literal["autoreject_local"] | None = "autoreject_local"

ica_reject = "autoreject_local" #TESTING
reject = "autoreject_local" #TESTING

#These are identical, just ensuring compatibility
sync_eyelink = True
sync_eye = True

#sync_eventtype_regex = "\\d-trigger=10 Image moves"
#sync_eventtype_regex_et = "trigger=10 Image moves"

#Contrast detection
#sync_eventtype_regex     = r"contrastTrial_start"
#sync_eventtype_regex_et  = r"# Message: 15"

sync_eventtype_regex     = r"(?:trialResponse|newPage)" #r"trialResponse"
sync_eventtype_regex_et  = r"# Message: (?:14|20)" #r"# Message: 14"

#sync_eventtype_regex     = r"trialResponse"
#sync_eventtype_regex_et  = r"# Message: 14"


#eog_channels = ["HEOGL", "HEOGR", "VEOGL", "VEOGU"]

#eeg_bipolar_channels = {"HEOG": ("HEOGL", "HEOGR"), "VEOG": ("VEOGL", "VEOGU")}
#eog_channels = ["HEOG", "VEOG"]
#sync_heog_ch = ("HEOG")


#eeg_bipolar_channels = {"HEOG": ("E40", "E109"),
#                            "VEOG": ("E21",  "E127")} #left eye
##eeg_bipolar_channels = {
##    #"HEOG": ("E127", "E126"),
##    "HEOG": ("E126", "E127"),
##    "VEOG": ("E22", "E127"), #left eye
##}


eeg_bipolar_channels = {
    #"HEOG": ("E127", "E126"),

    # Version 1, doesn't work well
    #### "HEOG": ("E127", "E126"), 
    #### "VEOG": ("E22", "E127"), #left eye

    # Version 2, works well but not sure why
    ###"HEOG": ("E109", "E40"),
    ###"VEOG": ("E22", "E127"), 

    # Version 3, seems to work well?
    "HEOG": ("E2", "E26"),
    "VEOG": ("E3", "E8")
}


eog_channels = ["HEOG", "VEOG"]

sync_heog_ch = "HEOG"

sync_et_ch = ("L POR X [px]", "R POR X [px]")

#sync_et_ch = "xpos_right"
sync_plot_samps = 3000

decode: bool = False
run_source_estimation = False

montage = mne.channels.make_standard_montage("GSN-HydroCel-128")

eeg_template_montage = montage
drop_channels = ["Cz"]

n_jobs = 1
  Platform             Linux-5.14.0-427.96.1.el9_4.x86_64-x86_64-with-glibc2.34
Python               3.11.7 (main, Aug 29 2025, 00:00:00) [GCC 11.4.1 20231218 (Red Hat 11.4.1-4)]
Executable           /pfs/work9/workspace/scratch/st_st156392-mydata/mnevenv/bin/python
CPU                  Intel(R) Xeon(R) Platinum 8358 CPU @ 2.60GHz (128 cores)
Memory               251.5 GiB

Core
├☑ mne               1.10.2 (latest release)
├☑ numpy             2.3.4 (OpenBLAS 0.3.30 with 1 thread)
├☑ scipy             1.16.2
└☑ matplotlib        3.10.7 (backend=agg)

Numerical (optional)
├☑ sklearn           1.7.2
├☑ nibabel           5.3.2
├☑ pandas            2.3.3
├☑ h5io              0.2.5
├☑ h5py              3.15.1
└☐ unavailable       numba, nilearn, dipy, openmeeg, cupy

Visualization (optional)
├☑ pyvista           0.46.3 (OpenGL 4.5 (Compatibility Profile) Mesa 23.3.3 via llvmpipe (LLVM 17.0.6, 256 bits))
├☑ pyvistaqt         0.11.3
├☑ vtk               9.5.2
└☐ unavailable       qtpy, ipympl, pyqtgraph, mne-qt-browser, ipywidgets, trame_client, trame_server, trame_vtk, trame_vuetify

Ecosystem (optional)
├☑ mne-bids          0.17.0
├☑ mne-icalabel      0.8.1
├☑ mne-bids-pipeline 0.1.0.dev917+g2366e2b9a
├☑ eeglabio          0.1.2
├☑ edfio             0.4.10
├☑ pybv              0.7.6
└☐ unavailable       mne-nirs, mne-features, mne-connectivity, neo, mffpy